package ch.unisi.inf.pfii.teamred.pacman.model;

public abstract class PlayerControlledCreature extends Creature {

	private static final int POINTS = 0;

	public PlayerControlledCreature(final Position startPosition,
			final Direction currentDirection) {
		super(startPosition, currentDirection, POINTS);
	}

	public final Position getNextPosition() {
		Position position = getCurrentPosition().clone();
		position.addToPosition(getRelativePosition(getCurrentDirection()));
		return position;
	}

	public final int handlePoints() {
		return handleCurrentCreatures() + handleCurrentItems();
	}

	public final boolean isControlledByPlayer() {
		return true;
	}

	abstract protected int handleCurrentCreatures();

	abstract protected int handleCurrentItems();

}
